home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC Gamer (Italian) 30
/
PC Gamer IT CD 30 1-2.iso
/
MOTS
/
GAMEDATA
/
RESOURCE
/
JKMRES.GOO
/
cog_actor_atstdriver.cog
< prev
next >
Wrap
Text File
|
1998-02-25
|
2KB
|
98 lines
# Jedi Knight Cog Script
#
# ACTOR_ATST.COG
#
#
# Actor COG for Standard ATST
# Possibly creates ATAT driver upon death
# Resitances to certain types of damage
#
# [CR]
#
# (C) 1997 LucasArts Entertainment Co. All Rights Reserved
#
# ========================================================================================
symbols
message killed
message skill
message damaged
template pilot=ATATpilot local
template pilot2=ATATpilot local
template explosion=+atst_exp local
thing newThing local
flex rval local
flex damageType local
flex damageAmount local
flex totalDamage local
int player local
end
# ========================================================================================
code
killed:
rval = Rand();
if (rval < 0.45)
{
newThing = CreateThing(explosion, GetSenderRef());
newThing = CreateThing(pilot, GetSenderRef());
}
else if (rval < 0.60)
{
newThing = CreateThing(explosion, GetSenderRef());
newThing = CreateThing(pilot2, GetSenderRef());
}
else
{
newThing = CreateThing(explosion, GetSenderRef());
newThing = CreateThing(pilot, GetSenderRef());
DamageThing(newThing, 1000.0, 0x2, -1);
}
return;
# ........................................................................................
skill:
ReturnEx(-1);
return;
# ........................................................................................
damaged:
damageAmount = GetParam(0);
damageType = GetParam(1);
totalDamage = damageAmount;
if(BitTest(damageType, 0x01))
totalDamage = damageAmount * 0.0;
else if(BitTest(damageType, 0x02))
totalDamage = damageAmount * 0.25;
else if(BitTest(damageType, 0x10))
totalDamage = damageAmount * 0.5;
player = GetLocalPlayerThing();
if(GetThingParent(GetSourceRef()) == player)
{
if(GetCurWeapon(player) == 1)
{
if(GetThingHealth(player) > 1)
{
DamageThing(player, 1, 0x1, player);
}
}
}
ReturnEx(totalDamage);
return;
end